import fs from "fs"; // node中的文件系统模块
import { dirname, resolve } from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// 1.传统的回调在处理的时候 需要考虑错误，通过回调的方式来处理异步问题

// const person = {}; // 全局变量
// function cb(key, value) {
//   // 对函数增强
//   person[key] = value;
//   if (Reflect.ownKeys(person).length == 2) {
//     // 数字？
//     console.log(person);
//   }
// }
// 2.利用高阶函数，实现可以复用，预置参数
function after(times, cb) {
  const person = {};
  return (key, value) => {
    person[key] = value;
    if (--times == 0) {
      cb(person);
    }
  };
}
const cb = after(2, (person) => {
  console.log(person);
});
// 错误优先
fs.readFile(resolve(__dirname, "age.txt"), "utf8", function (err, data) {
  cb("age", data);
});

fs.readFile(resolve(__dirname, "name.txt"), "utf8", function (err, data) {
  cb("name", data);
});
